﻿/*
SINACOR - BMF&Bovespa
Arquivo: IMonitorAlocacao.cs
Criado em: 30-mar-2010 15:39:45
Arquiteto Responsável: RAMelo.7Comm
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.Common;
using Sinacor.Infra.UI.Common;
using Sinacor.Infra.Common.Exceptions;


namespace Sinacor.UI.Bovespa.Alocacao.Presenter 
{
    public interface IMonitorAlocacao : IAlocacaoBase
	{
		/// <summary>
		/// Indica a cor de mensagem aceita
		/// </summary>
		void ApresentarMensagemAceita();

		/// <summary>
		/// Indica a cor de mensagem falha
		/// </summary>
		void ApresentarMensagemFalha();

		/// <summary>
		/// Indica a cor de mensagem falha tratada
		/// </summary>
		void ApresentarMensagemFalhaTratada();

		/// <summary>
		/// Indica a cor de mensagem na fila de envio
		/// </summary>
		void ApresentarMensagemFilaEnvio();

		/// <summary>
		/// Indica a cor de mensagem gerada
		/// </summary>
		void ApresentarMensagemGerada();

		/// <summary>
		/// Indica a cor de mensagem invalidada
		/// </summary>
		void ApresentarMensagemInvalidada();

		/// <summary>
		/// Indica a cor de mensagem processando retorno
		/// </summary>
		void ApresentarMensagemProcessandoRetorno();

		/// <summary>
		/// Selecionar no combobox de pregão a data do movimento
		/// </summary>
		void AtribuirDataMovimento();

        /// <summary>
        /// Atualiza Pesquisa
        /// </summary>
        void AtualizarPesquisa();

		/// <summary>
		/// Atualiza data grid de alocações
		/// </summary>
		void AtualizarAlocacoesRealizadas();

		/// <summary>
		/// Atualiza data grid de erros de alocação
		/// </summary>
		void AtualizarErrosAlocacao();

		/// <summary>
		/// Atualiza data grid de mensagens de alocação
		/// </summary>
		void AtualizarMensagensAlocacao();

		/// <summary>
		/// Atualiza os textbox´s com os totalizadores
		/// </summary>
		void AtualizarTotalizadores();

		/// <summary>
		/// Solicita confirmação ao usuário para iniciar o processo de geração e envio de
		/// mensagens de  alocação
		/// </summary>
		bool ConfirmarEnvioAlocacoes();

		/// <summary>
		/// Solicita confirmação ao usuário para interromper o processo de geração de
		/// alocações
		/// </summary>
		bool ConfirmarInterrupcaoGeracaoAlocacoes();

		/// <summary>
		/// Solicita confirmação ao usuário para interromper o processo de geração de
		/// alocações
		/// </summary>
		bool ConfirmarReenvioMensagens();

		/// <summary>
		/// Solicita confirmação ao usuário para realizar o tratamento de falhas da
		/// mensagens selecionadas
		/// </summary>
		bool ConfirmarTratamentoFalhas();

		/// <summary>
		/// Desabilita todos os itens do menu contextual da grid de mensagens
		/// </summary>
		void DesabilitarMenuMensagensAlocacao();

		/// <summary>
		/// Habilita ou desabilita o item de menu "Reenviar Mensagem" conforme parâmetro de
		/// entrada
		/// </summary>
		/// <param name="habilita"></param>
		void HabilitarMenuReenviarMensagem(bool habilita);

		/// <summary>
		/// Habilita ou desabilita o item de menu "Tratar Falha" conforme parâmetro de
		/// entrada
		/// </summary>
		/// <param name="habilita"></param>
		void HabilitarMenuTratarFalha(bool habilita);

		/// <summary>
		/// Possibilita a visualização ou não do item de menu "Enviar mensagens de
		/// alocações D0 e D-1", conforme parâmetro de entrada
		/// </summary>
		/// <param name="visualizar"></param>
		void VisualizarMenuEnviarMensagensAlocacao(bool visualizar);

		/// <summary>
		/// Possibilita a visualização ou não do item de menu "Interromper envio de
		/// mensagens de alocações", conforme parâmetro de entrada
		/// </summary>
		/// <param name="visualizar"></param>
		void VisualizarMenuInterromperEnvioMensagens(bool visualizar);

        /// <summary>
        /// Mostra mensagem de Usuário sem permissão.
        /// </summary>
        void InformarUsuarioSemPermissao();

        /// <summary>
        /// Mostra mensagem de Movimento de ordem não aberto
        /// </summary>
        void InformarMovimentoOrdemNaoAberto();
    }

}